package com.wf.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wf.domain.MessageInfo;
import com.wf.service.MessageInfoService;
import com.wf.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 系统消息接口
 * 主要包括获取用户消息和发送新消息的功能
 * @author mpk
 */
@RestController
@CrossOrigin
@RequestMapping("/app/message")
public class MessageController {

    /**
     * 消息信息服务，用于与消息相关的业务操作
     */
    @Autowired
    private MessageInfoService messageService;

    /**
     * 根据用户ID获取其所有消息
     *
     * @param useId 用户ID
     * @return 包含用户所有消息的Result对象
     */
    @GetMapping("/{useId}")
    public Result getMessage(@PathVariable String useId)
    {
        // 使用Lambda表达式查询用户ID匹配的所有消息
        List<MessageInfo> list = messageService.list(new LambdaQueryWrapper<MessageInfo>().eq(MessageInfo::getUserId, useId));

        return Result.success(list);
    }

    /**
     * 发送新消息
     *
     * @param message 待发送的消息对象
     * @return 表示操作结果的Result对象
     */
    @PostMapping
    public Result sendMessage(@RequestBody MessageInfo message)
    {
        // 保存新消息到数据库
        messageService.save(message);
        return Result.success();
    }


    @DeleteMapping("/delete/{id}")
    public Result deleteMessage(@PathVariable String id)
    {
        // 根据消息ID删除消息记录
        messageService.removeById(id);
        return Result.success();
    }

}
